package com.indusfo.spc.service.impl;

import com.indusfo.spc.exception.GlobalException;
import com.indusfo.spc.mapper.BatchScrapDetailMapper;
import com.indusfo.spc.mapper.BatchScrapMapper;
import com.indusfo.spc.pojo.BatchScrap;
import com.indusfo.spc.pojo.BatchScrapDetail;
import com.indusfo.spc.service.BatchScrapDetailService;
import com.indusfo.spc.vo.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class BatchScrapDetailServiceImpl implements BatchScrapDetailService {

    private  static  final Logger logger = LoggerFactory.getLogger(BatchScrapDetailServiceImpl.class);

    @Resource
    private BatchScrapMapper batchScrapMapper;

    @Resource
    private BatchScrapDetailMapper batchScrapDetailMapper;
    
    
    @Override
    public JSONObject selectAll(BatchScrapDetail batchScrapDetail) {
        List<BatchScrapDetail> listBatchScrapDetail = null;
        try {
            Integer pagesize = batchScrapDetail.getPagesize();
            Integer pageindex = batchScrapDetail.getPageindex();
            if(pagesize != null && pageindex != null) {
                batchScrapDetail.setIncept(pagesize*(pageindex - 1));
            }
            Integer batchScrapId = batchScrapDetail.getBatchScrapId();
            if(batchScrapId==null){
                List<BatchScrap> BatchScraps = batchScrapMapper.selectAll(null);
                batchScrapDetail.setBatchScrapId(BatchScraps.get(0).getBatchScrapId());
            }
            //查询全部
            listBatchScrapDetail = batchScrapDetailMapper.selectAll(batchScrapDetail);

            if (listBatchScrapDetail.isEmpty()) {
                return JSONObject.oK("查询不到相关数据", listBatchScrapDetail, 0);
            }
            //查询分页总记录数
            int count = batchScrapDetailMapper.countBatchScrapDetail(batchScrapDetail); //返回查询到的总记录数
            return JSONObject.oK("查询成功", listBatchScrapDetail, count);
        } catch (GlobalException e) {
            logger.error(e.getMessage(), e);
            return JSONObject.build(403, e.getMessage());
        }
    }

    @Override
    public JSONObject queryBatchList(BatchScrapDetail batchScrapDetail, Integer[] batchIds) {
        List<BatchScrapDetail> batchList = null;
        try {
            Integer pagesize = batchScrapDetail.getPagesize();
            Integer pageindex = batchScrapDetail.getPageindex();
            if(pagesize != null && pageindex != null) {
                batchScrapDetail.setIncept(pagesize*(pageindex - 1));
            }
            if(batchIds==null){
            }
            else if(batchIds.length==0){
                batchIds=null;
            }
            batchList = batchScrapDetailMapper.queryBatchList(batchScrapDetail,batchIds);
            if (batchList.isEmpty()) {
                return JSONObject.oK("没有相关数据", batchList, 0);
            }
            //查询分页总记录数
            int count = batchScrapDetailMapper.countBatchList(batchScrapDetail,batchIds);
            return JSONObject.oK("查询成功", batchList,count );
        } catch (GlobalException e) {
            logger.error(e.getMessage(), e);
            return JSONObject.build(403, e.getMessage());
        }
    }


}
